/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import entity.SystemM;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

/**
 *
 * @author ian
 */
public class HistoricControl extends JFrame {

    private JPanel contentPane;
    int historic;
    List<SystemM> registros = view.CentralFrame.registers;

    public HistoricControl(int historic) {
       
        this.historic = historic;
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setBounds(100, 100, 400, 200);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        setBounds(0, 0, 500, 400);
    }

    @Override
    public void paint(Graphics g) {
        
       
            super.paint(g);
            Graphics2D g2 = (Graphics2D) g; // Dibujo dela línea g2.setColor(Color.pink);
            g2.setStroke(new BasicStroke(1.0f));
            Line2D x = new Line2D.Float(100.0f, 300.0f, 400.0f, 300.0f); //ejex
            Line2D y = new Line2D.Float(100.0f, 300.0f, 100.0f, 50.0f); //eje y
            g2.draw(x);             //Los dibuja en la
            g2.draw(y);              //ventana grafica
            Ellipse2D e;            //Para dibujar los Puntos
            Line2D puntos;          //Para Para dibujar cada separacion en el eje x
            Line2D puntos2;        //Para Para dibujar cada separacion en el eje y
            int w = getSize().width;
            FontRenderContext frc = g2.getFontRenderContext();
            Font fuente = new Font("Times", Font.BOLD, w / 50);
            String s = "";
            TextLayout tstring;
            for (int i = 0; i < 15; i++) {//dibujar en el eje x numeros y separaciones
                tstring = new TextLayout(Integer.toString(i), fuente, frc);
                tstring.draw(g2, 96.0f + 20.0f * i, 320.0f);
                puntos = new Line2D.Float(100.0f + 20.0f * i, 300.0f, 100.0f + 20.0f * i, 310.0f);
                g2.draw(puntos);
            }
            for (int i = 0; i < 8; i++) { //dibujar en el eje y numeros y separaciones
                tstring = new TextLayout(Integer.toString(i * 50), fuente, frc);
                tstring.draw(g2, 80.0f, 300.0f - 50 * i);
                puntos2 = new Line2D.Float(96.0f, 300.0f - 50 * i, 100.0f, 300.0f - 50 * i);
                g2.draw(puntos2);
            }

            if (historic == 1) {//grafica de temperatura
                tstring = new TextLayout("Días", fuente, frc);
                tstring.draw(g2, 400.0f, 340.0f);
                tstring = new TextLayout("Temperatura ºK", fuente, frc);
                tstring.draw(g2, 80.0f, 40.0f);
                tstring = new TextLayout("Histórico Temperatura", fuente, frc);
                tstring.draw(g2, 100.0f, 350.0f);
                for (int i = 0; i <= registros.size() - 1; i++) {
                    e = new Ellipse2D.Float(100.0f + 20.0f * i, 300.0f - registros.get(i).getTemperature(), 5, 5);//La escala es 1:20
                    g2.setColor(Color.black);
                    g2.setColor(Color.red);
                    g2.draw(e);
                }
            }
            if (historic == 2) {//grafica de presion atmosferica
                tstring = new TextLayout("Días", fuente, frc);
                tstring.draw(g2, 400.0f, 340.0f);
                tstring = new TextLayout("Atmosferas de Presión", fuente, frc);
                tstring.draw(g2, 80.0f, 40.0f);
                tstring = new TextLayout("Histórico Presion Atmosférica", fuente, frc);
                tstring.draw(g2, 100.0f, 350.0f);
                for (int i = 0; i <= registros.size() - 1; i++) {
                    e = new Ellipse2D.Float(100.0f + 20.0f * i, 300.0f - registros.get(i).getAtmPressure(), 5, 5);//La escala es 1:20
                    g2.setColor(Color.black);
                    g2.setColor(Color.blue);
                    g2.draw(e);
                }
            }
            if (historic == 3) { //grafica de pluviosidad
                tstring = new TextLayout("Días", fuente, frc);
                tstring.draw(g2, 400.0f, 340.0f);
                tstring = new TextLayout("Pluviosity mm", fuente, frc);
                tstring.draw(g2, 80.0f, 40.0f);
                tstring = new TextLayout("Histórico Pluviosidad", fuente, frc);
                tstring.draw(g2, 100.0f, 350.0f);
                for (int i = 0; i <= registros.size() - 1; i++) {
                    e = new Ellipse2D.Float(100.0f + 20.0f * i, 300.0f - registros.get(i).getPluviosity(), 5, 5);//La escala es 1:20
                    g2.setColor(Color.black);
                    g2.setColor(Color.green);
                    g2.draw(e);
                }
            }
        }           
        }

